home *** CD-ROM | disk | FTP | other *** search
- : # *-*-perl-*-*
- eval 'exec perl -S $0 "$@"'
- if $running_under_some_shell;
- #
- # mktemplate - Converts an easy-to-write template into a SOIF template.
- # Not very robust.
- #
- # Usage: mktemplate [file ...]
- #
- # Input format:
- #
- # @FILE { url
- # Attribute-Name-1:\tDATA
- # Attribute-Name-2:\tDATA
- # ...
- # Attribute-Name-n:\tDATA
- # }
- #
- # The Attributes must begin in column 0 and have one tab after the colon.
- # And the DATA must be on a single line.
- #
- # Darren Hardy, hardy@cs.colorado.edu, May 1994
- #
- #######################################################################
- #
- # Copyright (c) 1994. All rights reserved.
- # Mic Bowman of Transarc Corporation.
- # Peter Danzig of the University of Southern California.
- # Darren R. Hardy of the University of Colorado at Boulder.
- # Udi Manber of the University of Arizona.
- # Michael F. Schwartz of the University of Colorado at Boulder.
- #
- # This copyright notice applies to all code in Harvest other than subsystems
- # developed elsewhere, which contain other copyright notices in their source
- # text.
- #
- # The Harvest software was developed by the Internet Research Task Force
- # Research Group on Resource Discovery (IRTF-RD). The Harvest software may
- # be used for academic, research, government, and internal business purposes
- # without charge. The Harvest software may not be sold or distributed to
- # commercial clients or partners without explicit permission from the
- # copyright holders.
- #
- # The Harvest software is provided "as is", without express or implied
- # warranty, and with no support nor obligation to assist in its use,
- # correction, modification or enhancement. We assume no liability with
- # respect to the infringement of copyrights, trade secrets, or any patents,
- # and are not responsible for consequential damages. Proper use of the
- # Harvest software is entirely the responsibility of the user.
- #
- # For those who are using Harvest for non-commercial purposes, you may make
- # derivative works, subject to the following constraints:
- # 1. You must include the above copyright notice and these
- # accompanying paragraphs in all forms of derivative works,
- # and any documentation and other materials related to such
- # distribution and use acknowledge that the software was
- # developed at the above institutions.
- # 2. You must notify IRTF-RD regarding your distribution of the
- # derivative work.
- # 3. You must clearly notify users that your are distributing a
- # modified version and not the original Harvest software.
- # 4. Any derivative product is also subject to the restrictions of
- # the copyright, including distribution and use limitations.
- #
- #######################################################################
- while (<>) {
- next if (/^\n/o);
- do print_template() if (/^}/o);
- $top_line = $_ if (/^\@\w+/o);
- do grab_av($_) if (/^\w+/o);
- }
-
- sub grab_av {
- local($line) = @_;
- $attribute = $1, $data = $2 if ($line =~ /^([^:]*):\t(.*)$/o);
- $attribute =~ s/\{\d+\}//; # remove length if present
- $values{$attribute} = $data;
- }
-
- sub print_template {
- print $top_line;
- foreach $k (sort keys %values) {
- next if (length($values{$k}) < 1);
- print $k, "{" , length($values{$k}) , "}:\t";
- print "$values{$k}\n";
- }
- print "}\n\n";
-
- undef $top_line;
- foreach $k (sort keys %values) {
- undef $values{$k};
- }
- }
-